package com.tcp2;

import com.util.JDBCUtil;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.Connection;
import java.sql.Date;
import java.text.SimpleDateFormat;

public class TCPThreadServer {
    private static final int PORT = 8883;
    private static int count = 1;

    public static void main(String[] args) {
        try {
            /**
             * 创建一个ServerSocket对象，并给它制定一个端口号，
             * 通过这个端口号来监听客户端的连接，服务端接受客户端连接的请求是
             * 不间断地接受的，所以服务端的编程一般都永无休止的运行
             */
            ServerSocket ss = new ServerSocket(PORT);
            System.out.println("服务器已经启动。。。");
            while (count<10) {
                /**
                 * 在服务端调用accept()方法接受客户端的连接对象，accept()方法是
                 * 一个阻塞式的方法，一直傻傻地等待着是否有客户端申请连接
                 */
//                Socket s = ss.accept();
                System.out.println("共" + count + "次链接");
//                System.out.println("现连接IP地址是："+s.getInetAddress());
                count++;

                /** 获取当前的系统时间，与初始时间相减就是程序运行的毫秒数，除以1000就是秒数*/
                /**
                 * 服务端使用多线程方便多客户端的连接
                 * 这里将服务端的socket传给内部类，方便每个客户端都创建一个线程
                 */
                Thread t = new Thread(new TCPThreadServerSocket(ss));
                t.start();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void callback(){
        System.out.println("准备释放一次连接");
        count --;
    }

}
